The traditional methods for sequencing a series of tasks is to use a program, script or graphical user interface (GUI). The program or script consists of a series of instructions which tells the computer to perform certain tasks. However, most programming or scripting languages require an understanding of programming methods and of the syntax of the programming language used. Most computer users do not have the time or skill needed to build constructs to make these tools useful. Therefore this approach is not viable for such users. Another problem with this method for sequencing tasks is that one must rewrite the code if it is desired to modify the sequence of tasks.
In GUIs, the tasks to be performed may be represented as objects. After the default behavior of the objects is defined, the user must manually connect the objects to define the sequence of the tasks. The process of sequencing the tasks is typically done by the user manually connecting the objects together in the desired sequence. A problem with this method is that it is time consuming and error prone. For example, many GUI based programs allow the objects to be sequenced by manually selecting a first object referred to as the source object, manually selecting a second object referred to as the target object, and creating a link between the source and target objects. This link typically appears as a line extending between the source object and the target object. This line may also include an arrow to indicate the direction of sequencing. This process is repeated over and over to create a continuous chain, where the previous target object becomes the source object with the new object chosen as the target. Once constructed, the entire sequence or chain may be triggered and the underlying tasks executed in the order specified by the user.
This approach towards task sequencing is described in “Graphical Procedural Capability,” IBM Technical Disclosure Bulletin (April 1991, Vol. 33, No. 11). This article typifies the general means of connecting iconic representations of objects and sequencing their corresponding task(s) in a graphical user interface. Many software programs commonly referred to as Rapid Application Development (RAD) programs and many productivity tools for program creation use this approach. Examples of these productivity tools and strategies for their use may be found in “Rapid Development: Taming Wild Software Schedules” by Steve McConnell, Microsoft Press (1996) and “Workflow Strategies” by James Koblielus, IDG Books Worldwide Inc. (1997).
One inherent problem with this approach is revealed as the number of objects comprising any sequence grows large. Since the prior art approach requires that associations or links between objects constituting the sequence be determined by the user taking some action to explicitly associate and link one object to the next, any re-ordering that requires removal of existing links or the creation of new ones becomes very time consuming and prone to error. There is often a need to modify a complex sequence of tasks, to meet the rapidly changing needs of the user or organization for which it was developed. If the user reassigns the sequence of any one of the linked objects in the sequence, it may affect subsequent tasks or links which are dependent on the object being moved. That is, the sequencing of certain objects may be dependent on the execution of a task by some previous object. In such cases, the user must also make changes to all subsequent dependent links in order for the resequencing of objects to achieve the desired result. This is extremely time consuming and error prone in prior art programs.
Another problem with the prior art approach to task sequencing concerns the sheer amount of information displayed to the user as the number of objects and their associated links become large. With such a large number of objects, the user easily becomes overwhelmed by the density of visual information. Some prior art programs have attempted to solve this problem by allowing the user to selectively hide certain links (See, for example, Lazar, “HELLO, WORLD! ParcPlace—Digitalk's Parts for Java 1.0,” Software Development, February 1997). None, however, provide a method for resequencing objects or links which have been hidden.
In prior art programs for work flow or task sequencing, there is no correlation between the position of a task object in the graphical user interface and the order of tasks in the sequence. This lack of correlation can be confusing to the end user. Virtually all people, regardless of cultural background share an innate understanding of patterns. Prior art programs do not take advantage of people's innate understanding of patterns which can make these programs more difficult to learn and use.
Accordingly, there is a need for an improved graphical user interface for sequencing computer controlled tasks in a more efficient and less time consuming manner.